The subject application is directed generally to conversions of color image data between color spaces. The subject application is particularly suited to fast and efficient color space conversions having greater than three channels.
Electronic images frequently include color information. Such color information is typically encoded in a multidimensional color space, such as values in additive or subtractive primaries. Commonly used additive color spaces included red, green and blue (RGB), and are frequently used in displays such as monitors or projectors. Subtractive color spaces, such as cyan, yellow, magenta and black (CMYK,) are typically used in devices such as color printers.
When an electronic document, which is created or edited on a monitor and displayed in a color space, such as RGB, is to be output to hard copy, a conversion is made between color spaces. Such conversion is typically made with a color lookup table (CLUT), wherein an input value in one color space returns a table entry encoded in a second color space. Values between stored CLUT values are frequently obtained via a linear interpolation between closest table entries.
While CLUT color conversions are effective, they become extremely problematic when more than three channels of color are involved. By way of example, 15 linear interpolations are required for a 4-channel device color conversion, while 31 linear interpolations are required for a 5-channel device. Thus, substantial processing overhead is involved with higher channel numbers.